# -*- coding: utf-8 -*-
"""
Created on Thu Aug 10 20:57:13 2023

@author: skunk69
"""

import json

chinese_name = u'创伤后应激障碍检查表'
english_name = 'Post Traumatic Stress Disorder CheckList'
abbreviation = 'PCL'
category = u'应激及相关行为量表'

outline = u"""创伤后应激障碍（Post Traumatic Stress Disorder，PTSD）是指个体经历异乎寻常的威胁性或灾难性应激事件或情景（例如，目睹或遭遇到一个或多个涉及自身或他人的实际死亡，或受到死亡的威胁，或严重的受伤，或躯体完整性受到威胁）后，所导致的个体延迟出现和持续存在的精神障碍。PTSD的发病率报道不一，女性比男性更易发展为PTSD。概括来讲，PTSD的典型症状包括以下3个症状群：
（1）反复重现创伤性体验(病理性重现），并至少有下列1项：①不由自主地回想创伤事件经历；②反复出现有创伤性内容的噩梦；③反复发生错觉、幻觉；④反复发生触景生情的精神痛苦，如目睹死者遗物、旧地重游，或周年日等情况下会感到异常痛苦和产生明显的生理反应，如心悸、出汗、面色发白等。
（2）持续警觉性增高，至少有下列1项：①入睡困难或睡眠不深；②易激惹；③集中注意困难；④过分地担惊受怕。
（3）对与刺激相似或有关情境的回避，至少有下列2项：①极力不想有关创伤性经历的人与事；②避免参加能引起痛苦回忆的活动，或避免到会引起痛苦回忆的地方；③不愿与人交往、对亲人变得冷淡；④兴趣爱好范围变窄，但对与创伤经历无关的某些活动仍有兴趣，⑤选择性遗忘；⑥对未来失去希望和信心。
随着PTSD相关研究的逐渐深入，DSM内容进行了数次修订。在2013年修订的DSM-5中，列出了PTSD的诊断标准共有8大条目，分为4个症状群和1个亚型，在DSM-3的基础上增加了创伤事件相关的认知和心境方面的消极改变，从而对经受不同创伤的人群增加诊断识别的异质性。
《创伤后应激障碍检查表》（Post Traumatic Stress Disorder CheckList，PCL）由Weathers等于1993年编制的自评量表，是国外众多用于评估PTSD工具中使用最为广泛的自评工具之一。该量表按照DSM-IV所描述的17个症状编制了与之对应的17个条目。"""

instruction = u"""当您经历或目睹了无法预测的突发事件后，突发事件产生的痛苦情绪有时会在您的记忆中保留很长时间，并且每次回忆时都很痛苦。请您自己评估最近一段时间您的反应，包括这些反应的严重程度。"""

with open('PCL.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value.strip()

reverse_items = []
scales = [u'再体验因子',u'回避因子',u'高警觉（或过度唤起）因子']
scales_items = [list(range(1,6)),list(range(6,13)),list(range(13,18))]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,18)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'没有什么反应',u'轻度反应',u'中度反应',u'重度反应',u'极重度反应']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《创伤后应激障碍检查表》属于一个自评量表。"""

reliability = u"""国内被试样本来自2008年汶川地震灾区初中生群体。国外众多研究发现PCL具有优良的信度指标。国内上述样本研究也验证了该量表的信度良好。"""
validity = u"""利用国内被试样本，分析了该量表的结构效度、效标关联效度和实证效度。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""DSM-IV三因子结构计分方法：
1）再体验因子：条目1~5
2）回避因子：条目6~12
3）高警觉（或过度唤起）因子：条目13~17
17个条目相加得到总分，得分越高说明创伤事件对其影响越严重。
该量表作为辅助诊断工具其总分仅能说明创伤事件对其影响的严重程度，能否做出PTSD诊断还需要结合其他资料再做出判断。该量表的评分等级为：1=没有什么反应，2=轻度反应，3=中度反应，4=重度反应，5=极重度反应。根据DSM-IV的规定，在每个条目的得分大于等于3分时，才能确定存在该症状。
同时，根据DSM-IV的症状诊断标准，必须同时具有1项以上再体验症状、3项以上回避症状和2项以上过度唤起症状，才能做出PTSD诊断。"""

applications = u"""国外有几项研究报道了PCL的诊断效能。当划界分确定为50分时，对应的敏感性和特异性分别为0.82，0.83；当划界分确定为44分时，对应的敏感性和特异性分别为0.94，0.86。总的诊断效能为90%。国内尚未有相关报道。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)